macro_rules! calculate {
    (eval $e:expr) => (
            {
                //let val: usize = $e; //强制类型为整型
                let val: isize = $e; 
                println!("{} = {}", stringify!($e), val);
            }
        )
}
fn main() {
    //println!("{} = {}", stringify!(1 + 2), (1 + 2));
    calculate! {
        eval 1 + 2 //`eval`不是Rust的关键字
    }
    calculate! {
        eval (1 + 2) * (3 / 4)
    }
    calculate! {
        eval 5 * 3 - 6 * 5
    }
}
// rustc dsl_3.rs && ./dsl_3
